package com.mg.common.utils;

import cn.hutool.core.util.RandomUtil;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * 编码工具类
 * @author tomyeung-李尐达
 */
public class CodeUtils {
    private final static String SERIAL_NUMBER= RandomUtil.randomString(10);

    /**
     * @return 生成58位ID,以生成年月日时分开头(yyyyMMddhhmm)
     */
    public static String generateId(){
        return String.format("%s%s%S",
                new SimpleDateFormat("yyyyMMddhhmm").format(new Date()),
                UUID.randomUUID(),
                SERIAL_NUMBER
        );
    }
    /**
     * @return 生成19位ID,以生成年月日时分开头(yyyyMMddhhmm)
     */
    public static Long generateNumberId(){
        return Long.valueOf(String.format("%s%s",
                System.currentTimeMillis(),
                RandomUtil.randomNumbers(6)
        ));
    }

    /**
     * @return 生成23位短ID 当前时间戳+随机10位字符串
     */
    public static String generateShortId(){
        return String.format("%s%s",System.currentTimeMillis(),RandomUtil.randomNumbers(10));
    }
}
